package bancosys.tec.utils.formatter;

import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.Locale;

/**
 * Formatador de Números.
 * 
 * @author Evaristo
 */
public final class NumberFormatter {

    /**
     * Construtor privado.
     */
    private NumberFormatter() {
        // vazio
    }

    /**
     * Formata um número em BigDecimal passado no parametro com n digitos decimais, onde n é o inteiro passado no parametro.
     * 
     * @param number numero
     * @param decimal decimais
     * @return número formatado.
     */
    public static String formatDecimalNumber(BigDecimal number, int decimal) {
        return formatDecimalNumber(number, decimal, new Locale("pt", "BR"));
    }

    /**
     * Formata um número em BigDecimal passado no parametro com n digitos decimais, onde n é o inteiro passado no parametro.
     * 
     * @param number numero
     * @param decimal decimais
     * @param locale locale
     * @return número formatado.
     */
    public static String formatDecimalNumber(BigDecimal number, int decimal, Locale locale) {
        if (number == null) {
            return null;
        }
        NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
        numberFormat.setMinimumFractionDigits(decimal);
        numberFormat.setMaximumFractionDigits(decimal);
        return numberFormat.format(number);
    }
}